package com.woniu.apiImpl;

import com.woniu.api.HisPatientQueryApi;
import com.woniu.dto.AllHisPrescriptionDto;
import com.woniu.dto.HisPatientDto;
import com.woniu.dto.PageDTO;
import com.woniu.param.ListHisPatientParam;
import com.woniu.param.LoginHisPatientParam;
import com.woniu.param.ModifyHisPatientParam;
import com.woniu.param.RegistratPatientParam;
import com.woniu.service.HisPatientService;
import com.woniu.util.Result;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@RestController
public class HisPatientQueryApiImpl implements HisPatientQueryApi {
    @Resource
    private HisPatientService hisPatientService;
    @Override
    public Result<HisPatientDto> loginOperation(LoginHisPatientParam loginHisPatientParam) {
        HisPatientDto hisPatientDto = hisPatientService.patientLogin(loginHisPatientParam);
        return Result.bulid(hisPatientDto);
    }

    @Override
    public Result<HisPatientDto> registrationOperation(RegistratPatientParam registratPatientParam) {
        HisPatientDto hisPatientDto = hisPatientService.newPatients(registratPatientParam);
        return Result.bulid(hisPatientDto);
    }

    @Override
    public Result<Boolean> modifyHospitalizationStatus(Integer id) {
        Boolean aBoolean = hisPatientService.modifyHospitalizationStatus(id);
        return Result.bulid(aBoolean);
    }

    @Override
    public Result<Integer> modifyBalance(Integer id,Integer money) {
        Integer integer = hisPatientService.modifyBalance(id, money);
        return Result.bulid(integer);
    }

    @Override
    public Result<HisPatientDto> modifyPatientInformation(ModifyHisPatientParam modifyHisPatientParam) {
        HisPatientDto hisPatientDto = hisPatientService.modifyPatientInformation(modifyHisPatientParam);
        return Result.bulid(hisPatientDto);
    }

    @Override
    public Result<Boolean> deletePatientInformation(ArrayList<Integer> id) {
        Boolean aBoolean = hisPatientService.deletePatient(id);
        return Result.bulid(aBoolean);
    }

    @Override
    public Result<PageDTO<HisPatientDto>> queryPatientInformation(ListHisPatientParam listHisPatientParam) {
        PageDTO<HisPatientDto> hisPatientDtoPageDTO = hisPatientService.queryCorrespondingInformation(listHisPatientParam);
        return Result.bulid(hisPatientDtoPageDTO);
    }
}
